# 需求：打开注册A页面，完成以下操作
# 1). 输入用户名：admin1，暂停2秒，删除末尾的"1"
# 2). 全选用户名：admin，暂停2秒
# 3). 复制用户名：admin，暂停2秒
# 4). 粘贴到密码框（实现用户名和密码一致）

# 从time模块导入sleep函数，用于程序强制暂停（等待操作生效、页面状态稳定）
from time import sleep
# 从selenium库导入webdriver模块，用于创建浏览器驱动、控制浏览器
from selenium import webdriver
# 从selenium导入Keys类，核心用于模拟键盘按键操作（如退格、Ctrl+A、Ctrl+C等）
from selenium.webdriver.common.keys import Keys
# 导入By类（补充：适配新版selenium，替代旧版find_element_by_*方法）
from selenium.webdriver.common.by import By

# 1. 初始化并打开Chrome浏览器
# executable_path：指定ChromeDriver驱动的本地绝对路径（适配selenium3及以下版本）
# 驱动作用：建立Python代码与Chrome浏览器的通信桥梁，实现对浏览器的控制
driver = webdriver.Chrome(executable_path='D:/chrome_driver/chromedriver.exe')
# 注释：selenium4及以上版本推荐写法（无需手动指定驱动路径）
# 需提前安装 webdriver-manager 库（pip install webdriver-manager），自动匹配浏览器版本下载驱动
# driver = webdriver.Chrome() # 创建Chrome浏览器对象，后续通过该对象执行所有操作

# 2. 访问目标页面（注册A页面）
# get()方法：接收完整网络URL，让浏览器加载并显示该网页
driver.get("http://121.43.169.97:8848/pageA.html")

# 放大浏览器窗口
# maximize_window()：将窗口调整为屏幕最大尺寸，避免元素因窗口过小被隐藏，提高操作稳定性
driver.maximize_window()

# ---------------------- 核心操作1：输入用户名并删除末尾字符 ----------------------
# 步骤1：定位用户名输入框
# 旧版定位方式（已弃用，不推荐）：username = driver.find_element_by_css_selector("#userA")
# 新版定位方式（selenium4+推荐）：通过CSS_SELECTOR定位id为"userA"的输入框（#表示id选择器）
username = driver.find_element(By.CSS_SELECTOR, "#userA")

# 步骤2：向用户名输入框输入文本"admin1"（末尾多输入一个"1"，用于后续删除操作）
username.send_keys("admin1")

# 暂停2秒：等待输入操作完成，确保"admin1"已完整显示在输入框中
sleep(2)

# 步骤3：删除末尾的"1"
# send_keys(Keys.BACK_SPACE)：模拟键盘退格键（Backspace），删除输入框中光标位置的前一个字符
# 此处光标默认在文本末尾，因此删除最后一个字符"1"，最终用户名变为"admin"
username.send_keys(Keys.BACK_SPACE)

# 暂停2秒：等待删除操作生效，便于观察中间状态
sleep(2)

# ---------------------- 核心操作2：全选用户名 ----------------------
# 模拟键盘快捷键 Ctrl+A（全选操作）
# send_keys(Keys.CONTROL, 'a')：接收多个参数，依次模拟按下对应按键（先按Ctrl，再按A，最后释放）
# 作用：全选输入框中的所有文本（此处全选"admin"）
username.send_keys(Keys.CONTROL, 'a')

# 暂停2秒：等待全选操作生效（全选后文本会高亮显示），便于观察效果
sleep(2)

# ---------------------- 核心操作3：复制用户名 ----------------------
# 模拟键盘快捷键 Ctrl+C（复制操作）
# send_keys(Keys.CONTROL, 'c')：模拟按下Ctrl+C，将全选的"admin"复制到系统剪贴板
username.send_keys(Keys.CONTROL, 'c')

# 暂停2秒：等待复制操作完成，确保文本已存入剪贴板
sleep(2)

# ---------------------- 核心操作4：粘贴到密码框 ----------------------
# 步骤1：定位密码输入框
# 旧版定位方式（已弃用）：password = driver.find_element_by_css_selector("#passwordA")
# 新版定位方式：通过CSS_SELECTOR定位id为"passwordA"的密码输入框
password = driver.find_element(By.CSS_SELECTOR, "#passwordA")

# 步骤2：模拟键盘快捷键 Ctrl+V（粘贴操作）
# send_keys(Keys.CONTROL, 'v')：模拟按下Ctrl+V，将剪贴板中的"admin"粘贴到密码输入框
password.send_keys(Keys.CONTROL, 'v')

# （可选）保持页面状态便于观察结果，最后关闭浏览器
# sleep(5)  # 延长暂停时间，观察用户名和密码框的内容是否一致（均为"admin"）
# driver.quit()  # 关闭浏览器并释放资源